package com.sso.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author : luyifei
 * @date : 2021/1/17
 */
public interface UserService {

    /**
     * 校验token是否合法，并判断redis中token是否过期
     *
     * @param token token
     * @return 验证结果
     */
    boolean verifyToken(String token);

    /**
     * 用户通过验证后，延长redis中token过期时间
     *
     * @param token
     */
    void delayToken(String token);

    /**
     * 删除cookie和redis中token
     *
     * @param token
     * @param response
     */
    void deleteToken(String token, HttpServletResponse response);

    /**
     * 删除redis中token
     *
     * @param token
     */
    void deleteCacheToken(String token);

    /**
     * 删除cookie中token
     *
     * @param token
     * @param response
     */
    void deleteCookieToken(String token, HttpServletResponse response);


    /**
     * 保存token
     *
     * @param token
     * @param response
     */
    void saveToken(String token, HttpServletResponse response);

    /**
     * 获取
     *
     * @param key
     * @param request
     * @return
     */
    String getCookies(String key, HttpServletRequest request);

    /**
     * @param userName
     * @param password
     * @return
     */
    boolean verifyUser(String userName, String password);
}
